Integrated circuits are utilized in a variety of different applications, including many electronic applications. Integrated circuits are generally manufactured to perform specific tasks or operations, and include circuitry designed specifically for such operations or applications. As such, an integrated circuit which is designed for a specific purpose includes circuitry dedicated to the specific purpose, and detailed considerations are made toward the design and arrangement of the circuitry. Field-programmable gate arrays (FPGAs) are also widely used in electronics. FPGAs are a type of integrated circuit programmable by an end user. FPGAs are generally manufactured without any preset configurations, and are programmed by the end user to perform more specific tasks or operations.
Integrated circuits and FPGAs can be interchangeable for executing various digital functions. Each has its respective advantages. For example, FPGAs may be more versatile as they are reprogrammable, but may be limited with respect to performing more complex operations in a single device for which an integrated circuit is specifically designed to perform. As such, many designers utilize both integrated circuits and FPGAs, depending on which may be more suitable for a particular application.
Design processes of integrated circuits and FPGAs are different. The circuitry in integrated circuits is designed specifically for each particular application, and as such, designers customize integrated circuit layouts for device manufacturing. FPGAs, on the other hand, are designed to be general purpose, and designers program the connections between logic blocks in FPGAs based on the application.
As such, integrated circuits and FPGAs may both be designed to execute desired functions. As manufacturing is often outsourced, testing procedures have been implemented to verify that manufactured integrated circuits and FPGAs perform as expected. To this extent, automatic test pattern generators (ATPGs) are often used in integrated circuit and FPGA testing to determine if there are any manufacturing defects. Alternatively, other testing methods, such as application of custom random or functional test vectors, Joint Test Action Group (JTAG) interfaces, or other test methods are utilized to verify the electrical functionality of a device. Each of these existing testing methods involves a variation of the application of specific testing inputs, and comparing resulting outputs with a set of reference or expected outputs.